﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.ComponentModel;

namespace CBE.Model
{
    public partial class Servicios : IDataErrorInfo
    {
        public Boolean IsNew { get; set; }

        public Servicios()
            : base()
        {
            this.ID_Servicio = Guid.NewGuid();

            this.IsNew = true;
        }

        //HACK: reset de la bandera IsNew
        partial void OnID_ServicioChanging(Guid value)
        {
            this.IsNew = false;
        }

        #region IDataErrorInfo Members

        public string Error
        {
            get { throw new NotImplementedException(); }
        }

        public string this[string columnName]
        {
            get
            {
                String error = null;

                if (columnName == "Codigo" && String.IsNullOrEmpty(Codigo))
                {
                    error = "El campo Código es de ingreso obligatorio.";
                }
                else if (columnName == "Descripcion" && String.IsNullOrEmpty(Descripcion))
                {
                    error = "El campo Descripción es de ingreso obligatorio.";
                }
                else if (columnName == "Precio" && !this.Precio.HasValue)
                {
                    error = "El campo Precio es de ingreso obligatorio.";
                }
                else if (columnName == "DuracionAproximada" && this.DuracionAproximada == TimeSpan.Zero)
                {
                    error = "El campo Duración Aproximada (minutos) es de ingreso obligatorio.";
                }
                else if (columnName == "ProductosServicio" && ProductosServicio.Count == 0)
                {
                    error = "Debe ingresar al menos un producto relacionado con el servicio.";
                }

                return error;
            }
        }

        #endregion
    }
}